package com.peko.feignclient;

import com.peko.entity.Product;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * @Author：Peko
 * @Description：TODO
 * @Date：Created in 16:50 2023/7/31
 */

/**
 * openFeign 默认调用超过1s超时，在配置文件配置超时时间，可以配置默认的，或者为单独某个调用的服务配置
 *
 * 开启日志打印，可以配置默认，或者为单独某个调用的服务，级别必须为DEBUG
 */

@FeignClient("PRODUCT")
public interface ProductFeignClient {
    @GetMapping("product")
    String product();

    //@RequestParam：url?后面拼接参数方式
    @GetMapping("/test")
    String test(@RequestParam("name") String name, @RequestParam("age") Integer age);

    //@PathVariable：路径传递参数形式
    @GetMapping("/test1/{name}/{age}")
    String test1(@PathVariable("name") String name, @PathVariable("age") Integer age);

    //@RequestBody：传递json对象，不加这个注解，是form表单形式
    @GetMapping("test2")
    String test2(@RequestBody Product product);

    //@RequestPart：form表单形式
    @GetMapping("test3")
    String test3(@RequestPart("product") Product product);
}
